package V8.Class_Data is
   type Data (<>) is tagged limited private;
   type Pointer is access all Data;
   -- The superclass of values and API object templates.

   function As_Data (this : access Data) return Pointer;
   -- Contravariance

private
   type Data is tagged limited null record;

   function As_Data (this : access Data) return Pointer is (Pointer (this));

end V8.Class_Data;
